package com.wwc.bwcj.adapter

import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import androidx.recyclerview.widget.RecyclerView
import com.wwc.bwcj.R

/**
 * 轮播图适配器，用于显示轮播图
 */
class BannerAdapter(private val images: List<Int>) : RecyclerView.Adapter<BannerAdapter.BannerViewHolder>() {

    // 创建 BannerViewHolder 实例, 加载 item_banner 布局文件作为每个轮播图项的视图
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BannerViewHolder {
        val view = LayoutInflater.from(parent.context)
            .inflate(R.layout.item_banner, parent, false)
        return BannerViewHolder(view)
    }

    // 将指定位置的图片资源绑定到对应的 ViewHolder
    override fun onBindViewHolder(holder: BannerViewHolder, position: Int) {
        holder.bind(images[position])
    }

    // 返回轮播图总数，即图片列表的大小
    override fun getItemCount(): Int = images.size

    /**
     * 用于持有和绑定单个轮播图项的视图
     */
    class BannerViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        private val bannerImage: ImageView = itemView.findViewById(R.id.banner_image)

        // 将图片资源ID设置到 ImageView 上
        fun bind(imageRes: Int) {
            bannerImage.setImageResource(imageRes)
        }
    }
}